#include<必要的头文件>

//当对应的八个段分别为a,b,c,d,e,f,g,dp时，且为共阳极接法时：
unsigned char number[]={0x84,0xC0,0x03,0x92,0x98,0xAC,0x89,0x81,0xDC,0x80,0x88};//分别对应 A,0,1,2,3,4,5,6,7,8,9 【自己算的，可能有失误，最好自己再算算，还有这个是按照共阳极接发写的】
void delay(int num)
{
  //延时函数，通过无意义的计数来浪费时间
  int i,j,loop_num;
  loop_num=num;
  for(i=0;i<loop_num;i++)
  for(j=0;j<500;j++)
  ;
}
void main(void)
{
  DDRA=0xFF;//定义PORTA为输出模式
  DDRB=0xFF;//定义PORTB为输出模式
  int loop_;
  loop_=200; //延时控制参数设定
  PORTA=0xFF;//初始化使段码全送1，如果使共阳极接发，则全灭
  PORTB=0xFF;//初始化不送位码【如果也是共阳极】

  //动态显示2017
  while(1)//动态循环显示2017
  {
    PORTA=number[2];
    PORTB=0xFE;
    delay(loop_);

    PORTA=number[0];
    PORTB=0xFD;
    delay(loop_);

    PORTA=number[1];
    PORTB=0xFB;
    delay(loop_);

    PORTA=number[7];
    PORTB=0xF7;
    delay(loop_);
  }
}